#include <iostream>

using namespace std;

template <class T>
class Widget;

template <typename T>
class Widget;

template <typename C>
void print2nd(const C &container)
{
    if (container.size() >= 2)
    {
        return ;
    }
    //C::const_iterator iter(container.begin());
    typename C::const_iterator iter(container.begin());
}

template <typename C>
void f(const C &container, typename C::iterator iter)
{}

template <typename IterT>
void workWithIterator(IterT iter)
{
    typedef typename std::iterator_traits<IterT>::value_type value_type;
    typename std::iterator_traits<IterT>::value_type temp(*iter);
    value_type temp1(*iter);
}

int main(int argc, char *argv[])
{
    return 0;
}
